#ifndef CONNECTGEOMETRYOBJECTS_H
#define CONNECTGEOMETRYOBJECTS_H

    connect(GeometryObjects::hitpoints(), SIGNAL(updateGL()),
	    m_Viewer, SLOT(updateGL()));


    connect(GeometryObjects::paths(), SIGNAL(showMessage(QString, bool)),
	    m_Viewer, SLOT(displayMessage(QString, bool)));

    connect(GeometryObjects::paths(), SIGNAL(showProfile(int, int, QList<Vec>)),
	    this, SLOT(viewProfile(int, int, QList<Vec>)));

    connect(GeometryObjects::paths(),
	    SIGNAL(showThicknessProfile(int, int,
					QList< QPair<Vec, Vec> >)),
	    this, SLOT(viewThicknessProfile(int, int,
					    QList< QPair<Vec, Vec> >)));

    connect(GeometryObjects::paths(),
	    SIGNAL(pathExtractRaw(QList<Vec>,
				  QList<Vec>, QList<float>,
				  int, int, bool)),
	    this,
	    SLOT(pathExtractRaw(QList<Vec>,
				QList<Vec>, QList<float>,
				int, int, bool)));

    connect(GeometryObjects::paths(),
	    SIGNAL(patchExtractRaw(QList<Vec>,
				   QList<Vec>, QList<float>,
				   int, int, bool,
				   bool, int)),
	    this,
	    SLOT(patchExtractRaw(QList<Vec>,
				 QList<Vec>, QList<float>,
				 int, int, bool,
				 bool, int)));

    connect(GeometryObjects::paths(),
	    SIGNAL(fillVolumeAt(QList<Vec>, int, int, bool)),
	    this,
	    SLOT(fillVolumeAt(QList<Vec>, int, int, bool)));

    connect(GeometryObjects::paths(), SIGNAL(updateGL()),
	    m_Viewer, SLOT(updateGL()));


    connect(GeometryObjects::paintball(), SIGNAL(updateGL()),
	    m_Viewer, SLOT(updateGL()));

    connect(GeometryObjects::paintball(), SIGNAL(tagVolume(int, bool)),
	    this, SLOT(tagVolume(int, bool)));

    connect(GeometryObjects::paintball(), SIGNAL(fillVolume(int, bool)),
	    this, SLOT(fillVolume(int, bool)));

    connect(GeometryObjects::paintball(), SIGNAL(dilateVolume(int, int, bool)),
	    this, SLOT(dilateVolume(int, int, bool)));

    connect(GeometryObjects::paintball(), SIGNAL(erodeVolume(int, int, bool)),
	    this, SLOT(erodeVolume(int, int, bool)));

    connect(GeometryObjects::paintball(), SIGNAL(tagSurface(int, int, bool, bool)),
	    this, SLOT(tagSurface(int, int, bool, bool)));


    connect(GeometryObjects::crops(), SIGNAL(showMessage(QString, bool)),
	    m_Viewer, SLOT(displayMessage(QString, bool)));

    connect(GeometryObjects::crops(), SIGNAL(updateGL()),
	    m_Viewer, SLOT(updateGL()));


    connect(GeometryObjects::clipplanes(), SIGNAL(saveSliceImage(int, int)),
	    this, SLOT(saveSliceImage(int, int)));

    connect(GeometryObjects::clipplanes(), SIGNAL(resliceVolume(int, int, int)),
	this, SLOT(resliceVolume(int, int, int)));

    connect(GeometryObjects::clipplanes(), SIGNAL(reorientCameraUsingClipPlane(int)),
	    this, SLOT(reorientCameraUsingClipPlane(int)));



    connect(GeometryObjects::grids(), SIGNAL(updateGL()),
	    m_Viewer, SLOT(updateGL()));

    connect(GeometryObjects::grids(),
	    SIGNAL(gridStickToSurface(int, int,
				      QList< QPair<Vec, Vec> >)),
	    this, SLOT(gridStickToSurface(int, int,
					  QList< QPair<Vec, Vec> >)));



#endif
